# -*- coding: utf-8 -*-
"""
Created on Wed Aug  9 10:11:18 2023

@author: skunk69
"""

import json

chinese_name = u'应对方式问卷'
english_name = 'Coping Style Questionnaire'
abbreviation = 'CSQ'
category = u'应激及相关行为量表'

outline = u"""应对作为应激与健康的中介机制，对身心健康的保护起着重要作用。《应对方式问卷》（Coping Style Quesionnaire，CSQ）由肖计划等参照国内外应对研究的问卷内容以及有关应对理论，根据我国文化背景编制而成。该问卷可以解释个体或群体的应对方式类型和应对行为特点，比较不同的个体或群体的应对行为差异，并且根据不同类型的应对方式还可以反映人的心理发展成熟的程度。"""

instruction = u"""本问卷的每个条目有两个答案“是”、“否”。请您根据自己的情况在每一条目后选择一个答案，如果选择“是”，则继续对“有效”、“比较有效”、“无效”作出评估。如果选择否，则请继续下一个条目。
问题：您在生活中遇到冲突、挫折、困难或不愉快时，是否采取了下列应付方法？"""

with open('CSQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value

reverse_items = [19,36,39,42]
scales = [u'解决问题',u'自责',u'求助',u'幻想',u'退避',u'合理化']
scales_items = [
    [1,2,3,5,8,-19,29,31,40,46,51,55],# 解决问题
    [15,23,25,37,39,48,50,56,57,59],# 自责
    [10,11,14,-36,-39,-42,43,53,60,62],# 求助
    [4,12,17,21,22,26,28,41,45,49],# 幻想
    [7,13,16,19,24,27,32,34,35,44,47],# 退避
    [6,9,18,20,30,33,38,52,54,58,61],# 合理化
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,63)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'是',u'否',u'有效',u'比较有效',u'无效']
score_rules = [0,1,None,None,None]

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《应对方式问卷》是自陈式个体应付行为评定量表，独自完成。评定时间范围是指被测者近半年来的应付行为状况。适用范围：（1）文化程度在初中和初中以上；（2）年龄在14岁以上的青少年、成年和老年人；（3）除痴呆和重性精神病之外的各类心理障碍求助者。"""

reliability = u"""采用分层整群随机抽样，再测信度检验法。6个应付因子重测相关系数分别为：解决问题=0.72，自责=0.62，求助=0.69，幻想=0.72，退避=0.67，合理化=0.72。"""
validity = u"""采用因子分析方法，以检验和评估CSQ的结构效度。组成各因子条目的因素负荷取值在0.35以上。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""量表分记分方法：
首先，计算各分量表的量表分。“应对方式问卷”有六个分量表，每个分量表由若干个条目组成，每个条目只有两个答案，“是”’和“否”。计分分两种情况：
（1）除下面（2）中所列举的情况外，各个分量表的计分均为选择“是”，得“1”分，选择“否”，得“0”分。将每个项目得分相加，即得该分量表的量表分；
（2）在“解决问题”分量表中，条目19，在“求助”分量表中，条目36、39和42，选择“否’得“1”分，选择“是”得“0”分。
其次，计算各分量表的因子分。应对方式问卷的记分主要采用因子分，因子分的计算方法是：
分量表因子分=分量表单项条目之和/分量表条目数。"""

applications = u"""CSQ各分量表的意义：
应付因子间的相关分析发现“解决问题”与“退避”两应付因子的负相关程度最高。以此作为六个应付因子关系序列的两极，然后根据各因子与“解决问题”应付因子相关系数的大小排序，可将六个应付因子排出下列关系序列图：退避→幻想→自责→求助→合理化→解决问题。
六种应付方式在个体身上的不同组合形式：
“解决问题—求助”，成熟型：具有成熟稳定的人格特征和行为方式。
“退避—自责”，不成熟型：表现出神经症的人格特点，其情绪和行为缺乏稳定性。
“合理化”，混合型：在应对方式上表现出一种矛盾的心态和两面性的人格特点。
CSQ量表的应用价值：
1）可以作为不同群体的应付行为研究的标准化工具之一。
2）评估个体或某个群体的应付行为，有助于为心理健康保健工作提供依据。
3）用于不同群体应付行为类型和特点研究，为不同专业领域选拔人才提供帮助。
4）用于不同群体应付行为类型和特点研究，为培养人才提供帮助。
5）用于各种心理障碍的行为研究，为心理治疗和康复治疗提供指导。
6）用于各种有心理问题人的行为研究，为提高和改善人的应付水平提供帮助。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)